package reflect;

import java.lang.reflect.Field;

/**
 * 通过反射获取类中属性
 */
public class FieldTest {
    public static void main(String[] args) throws Exception {
        // 1.获取Class对象
        Class<?> cls = new Student().getClass();

        // 2.拿到指定的属性对象
        Field field = cls.getDeclaredField("name");
        // name是私有属性
        // 破坏封装
        field.setAccessible(true);
        // name是一个成员变量需要通过Student的实例化对象来调用
        Student stu = (Student) cls.newInstance();

        // 3.属性对象名.set(给哪个具体的对象设置值，设置的具体值) 给该属性赋值
        field.set(stu, "qq");

        // 4.属性对象名.get(具体的对象) 得到该属性的值
        System.out.println(field.get(stu));
    }
}
